package org.smartboot.flow.core;

/**
 * @author qinluo
 * @date 2022-11-25 20:34:35
 * @since 1.0.0
 */
public interface ExecutionListener {

    <T, S> void start(EngineContext<T, S> context);
    <T, S> void completed(EngineContext<T, S> context);

    <T, S> void beforeExecute(EngineContext<T, S> context, Object object);
    <T, S> void afterExecute(EngineContext<T, S> context, Object object);
    <T, S> void beforeRollback(EngineContext<T, S> context, Object object);
    <T, S> void afterRollback(EngineContext<T, S> context, Object object);
}
